all: forca lib_lcom.a

lib_lcom.a: video-graphics.o game.o kbc.o music.o timer.o ints.o wait.o kbd_isr.o assembler.o rtc.o
	ar -cr lib_lcom.a video-graphics.o game.o kbc.o music.o timer.o ints.o wait.o kbd_isr.o assembler.o rtc.o

forca: main.o video-graphics.o game.o kbc.o timer.o ints.o wait.o kbd_isr.o music.o assembler.o rtc.o
	gcc -Wall main.o video-graphics.o game.o kbc.o music.o timer.o ints.o wait.o kbd_isr.o assembler.o rtc.o -o main
	
main.o: main.c video-graphics.h utypes.h kbc.h
	gcc -Wall -c main.c -o main.o
	
video-graphics.o: video-graphics.c video-graphics.h
	gcc -Wall -c video-graphics.c -o video-graphics.o

wait.o:  wait.asm
	nasm -t -f coff  wait.asm -o  wait.o

music.o: music.c music.h timer.h utypes.h
	gcc -Wall -c music.c

timer.o: timer.c timer.h
	gcc -Wall -c timer.c

ints.o: ints.c ints.h
	gcc -Wall -c ints.c

assembler.o: assembler.asm
	nasm -t -f coff assembler.asm -o assembler.o
	
kbd_isr.o: kbd_isr.asm
	nasm -t -f coff kbd_isr.asm -o kbd_isr.o

kbc.o: kbc.h kbc.c ints.h ints.c timer.h timer.c
	gcc -Wall -c kbc.c
	
rtc.o: rtc.c rtc.h
	gcc -c rtc.c -o rtc.o

game.o: game.c game.h
	gcc -Wall -c game.c -o game.o

clean:
	rm *.o main
	
rebuild: clean all